package lanqiao.dontaiguihua.meiju;

import java.util.ArrayList;
import java.util.Scanner;

//类斐波那契循环数
public class Lan19699 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        long n=0;
        for(int i=197;i<1e7;i++){
            if(pc(i)){
                n=i;

            }
        }
        System.out.println(n);
        sc.close();
    }
    private static boolean pc(int o){
        String n=""+o;
        int ass=0;
        ArrayList<Integer> aess=new ArrayList<>();

        for(int j=0;j<n.length();j++){
            aess.add(n.charAt(j)-'0');
            ass=ass+n.charAt(j)-'0';
        }
        //[1,2,3,4]
        aess.add(ass);
        //[1,2,3,4,10]
        while(true){
            ass=(ass*2)-aess.get(0);
            aess.remove(0);
            aess.add(ass);
            if(ass==o){
                return true;
            }
            else if(ass>o){
                return false;
            }
        }
    }
}
//(非手搓)
//这题的关键规律就是在除了某个数的位数和位数之和后面的数，都是当前数*2-第一个元素，
// 所以就这样遍历直到找到和这个数相等的数，没有就false;
//比如197，经过第一个循环就给数组列表添加[1,9,7],添加位数之和就是[1,9,7,17]
//然后的循环:17*2-1=33，以此类推直到有和197相等的值。